package session07.gui;

import javax.swing.*;
import java.awt.*;

public class BorderFrame extends JFrame {
    private Container contentP;
    private JButton jb1;
    private JButton jb2;
    private JButton jb3;
    private JButton jb4;
    private JButton jb5;

    public BorderFrame(){
        this.setSize(600,500); //设置宽、高
        Toolkit tk = Toolkit.getDefaultToolkit();
        this.setLocationRelativeTo(null);//传另一个容器就相对于另一个容器，传null就相对于屏幕
        this.setTitle("边界布局管理器");
        this.setIconImage(tk.createImage("img/hp.JPG"));//设置窗体的图片
        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);//设置关闭窗口即关闭程序
        this.setResizable(false);//设置窗体大小不可变

        this.addContent();

        this.setVisible(true);//设置界面可见，永远放到最后
    }

    private void addContent() {
        this.contentP = this.getContentPane();
        /*
            这个容器使用哪种布局管理器就new它的对象，然后传入到
            该容器的setLayout方法当中。
            JFrame的内容面板，其实默认就是使用的BorderLayout。
         */
        this.contentP.setLayout(new BorderLayout());

        /*
            BorderLayout这种布局是把整个页面按"东南西北中"分成5个部分。
            口诀：东西南北中，南北要贯通，中间最大。
            这里的中间最大，不仅仅是指中间的位置最大，
            也是指中间的权利最大，即当周边不存在的时候，
            中间是会去占领周边的。但是中央不存在，周边是不能占领中央的。
         */
        this.jb1 = new JButton("按钮1");
        this.jb1.setFont(new Font("宋体",Font.PLAIN,30));
        this.jb2 = new JButton("按钮2");
        this.jb3 = new JButton("按钮3");
        this.jb4 = new JButton("按钮4按钮4按钮4");
        this.jb5 = new JButton("按钮5");

        /*
            当我们在add的时候没有去指定位置的时候，默认是往中间放。
         */
        this.contentP.add(this.jb1,BorderLayout.NORTH);
        this.contentP.add(this.jb2,BorderLayout.SOUTH);
        this.contentP.add(this.jb3,BorderLayout.EAST);
        this.contentP.add(this.jb4,BorderLayout.WEST);
//        this.contentP.add(this.jb5,BorderLayout.CENTER);

        /*
            对于BorderLayout来说，往往不是往某个位置放一个组件的；
            而是放一个子容器的，从而达到容器嵌套的效果。
         */
    }


}
